1. Field of the Invention
The present invention generally relates to messaging facilities and, more particularly, to messaging facilities capable of accessing a database.
2. Description of the Related Art
Front-end and back-end are terms that may be used to characterize program applications and services relative to a user of these applications and services. A front-end application is one that application users (i.e., a human being or another application) interact with directly. Commonly, the front end application is running on a local computer system (a front-end server) while the back end application is running on a remote computer system (a back-end server). In client-server terms, a front-end server would typically correspond to a client while a back-end server would typically correspond to a server. The back-end application may interact directly with the front-end application or, perhaps more typically, may interact with the front-end application through an intermediate program (i.e., middleware), such as a messaging facility.
A messaging facility is a program that provides inter-program communication, allowing two or more programs, such as a front-end and a back-end application, to send and receive application-specific data without having a direct connection established between the sending and receiving programs. Via a messaging facility, the front-end and back-end applications may agree to use particular named message queues and then communicate by sending messages to and receiving messages from the agreed-upon message queues. A message queue is a named object in which messages accumulate and from which they are later removed.
Applications have access to message queues by using message queuing API calls—obtaining message queuing services by using the message queuing calls to communicate with the queue manager that is installed on the same system as the application (i.e., the local queue manager). The locations of these queues need not be apparent to the applications which send the messages; each application interacts only with a local copy (i.e., an instance) of the messaging facility. In this way, messaging facilities simplify the level of complexity that is required of the application programs, removing the need for them to implement their own complex communications controls.
One common messaging paradigm is a networked database environment that includes a front-end application sending data to a back-end application to access a database on a remotely located back-end server. Databases are computerized information storage and retrieval systems. One common database is known as a relational database management system (RDBMS), which is a computer database management system that uses relational techniques for storing and retrieving data. Typically, the database contains data in the form of tables (formally denominated “relations”) stored for use on disk drives or similar mass data stores. A “table” includes a set of rows (formally denominated “tuples” or “records”) spanning several columns. Data in the tables is typically stored, retrieved and deleted using high-level query languages, such as the Structured Query Language (SQL). Reference is made to C. J. Date, An Introduction to Database Systems, 6th edition, Addison-Wesley Publishing Co. Reading, Mass. (1994) for a comprehensive general treatment of the database art.
In a common implementation, the back-end application supports the front-end application by being located close to the database (i.e., on the same machine) and by interfacing with the database. Typically, both the front-end application and the backend application are customized in order to recognize the message formats from each other. FIG. 1 illustrates an exemplary networked data environment 100 comprising a front-end server 110 and a back-end server 120.
The front-end server 110 includes a custom front-end application 112 that communicates with a custom back-end application 122 to access a database 130 on the back-end server 120. The front-end application 112 may access the database 130, for example, in response to user input received via a user interface 150. As previously described, a user may be another application or a human being. Accordingly, the user interface 150 may be an interface to another application or an interface for a human user, such as a graphical user interface (GUI) or, more specifically, a web browser to receive input from a user connected to the Internet.
In general, to access the database 130, the custom front-end application 112 generates parameters the back-end application 122 can use to construct a database request. For example, the parameters may include sufficient information to construct an SQL statement. The front-end application 112 places the parameters in a formatted message and places the message in a send queue 116 of a front-end messaging facility 114. The front-end messaging facility 114 sends the message from the send queue 116 to a receive queue 128 of a back-end messaging facility 124 via a dedicated channel 140, for example, established over a network connection (e.g., a TCP/IP connection). The custom back-end application 122 may then retrieve the message from the receive queue 128 and parse the message to extract the parameters in order to construct the database request. Once the database request (e.g., the SQL statement) is constructed, the custom back-end application 122 submits the request to the database 130.
After receiving results from the database request (i.e., requested data or success/failure of an update request), the custom back-end application 122 creates a formatted message containing the results and places the message in a send queue 126 of the back-end messaging facility 124. The back-end messaging facility 124 sends the message from the send queue 126 to a receive queue 118 of the front-end messaging facility 114. The front-end application 112 may then retrieve the message from the receive queue 118 and post the results to the user interface 150.
While the back-end application 122 provides an interface between the front-end application 112 and the back-end database 130, one disadvantage of this approach is that development efforts are required to develop both the front-end application and the back-end application. Prior to developing the applications, a protocol must be defined that specifies, for example, the parameters necessary to construct the database request and how to place the parameters in the message. After development, the applications are typically thoroughly tested in an effort to ensure proper operation. Further, if different parties are engaged to develop the front-end and back-end applications, a great deal of human communication may be required, which may contribute to significant inefficiencies. As a result, it would be preferable to eliminate or reduce the overhead involved in the definition, development, and testing typically required to provide an interface between a front end application and a backend database.
Accordingly, there is a need for an improved method and system for providing an interface between a front-end application and a back-end database.